System and method for adding members to chat groups based on analysis of chat content

ABSTRACT

A system, method, and program product is provided that selects an instant messaging message that includes one or more words in a text area. The instant message is a communication with an instant messaging participant that corresponds to an instant messaging participant identifier. A count is kept of the words that match keywords that are associated with a selected instant messaging group data store that is stored in a nonvolatile data area. If the count exceeds a particular threshold, the instant messaging participant identifier is added to the selected instant messaging group.

BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates to a system and method that adds membersto instant messaging chat groups. More particularly, the presentinvention relates to a system and method that selects members to add toinstant messaging chat groups based upon analysis of instant messagecontent.

2. Description of the Related Art

Instant messaging has become a critical communications technology formany users and organizations. Instant messaging allows a user to createa “session” with one or more other users so that messages can be sentback and forth contemporaneously. The flow of messages in an instantmessage session creates a dialog between the user and other users withwhom the user has established a session. In this manner, quick messagescan be transmitted without sending an email message or telephoning theother user. Users can choose whether and when to respond to instantmessages, much like an email message. However, unlike email messages, ininstant messaging, a window is displayed on the user's display showingthe messages between the user and another user.

A typical use of instant messaging is the ability to engage in“off-line” discussions during a telephone conference call. For example,in a negotiations conference call between two organizations, individualswithin an organization can use instant messaging to ask each otherquestions and make other comments about topics being discussed in theconference call without having to remember such questions and commentsand discuss them after the call has completed. Being able to have such“off-line” discussions enables the conference call participants to bebetter informed and more efficient so that more work is accomplishedduring the conference call and fewer “follow-up” calls are needed toresolve negotiation issues.

One challenge in using instant messaging, however, is the user'smaintenance of his or her instant messaging groups. An instant messaginggroup is a group of instant messaging participants with a common theme.For example, if a user is involved in a project code-named “Phoenix,” hemay add a instant messaging group to store participants of the group(e.g., naming the group “Phoenix”). When the user wants to communicatewith all members of the Phoenix group using instant messaging, aninstant messaging session can be opened with the Phoenix group andinstant messaging messages entered by the user are sent to all membersof the group that are currently active (e.g., logged on). One challengein maintaining these groups is sometimes attributable to the fluidnature of groups and group participants. The user may be discussing thePhoenix project with a particular instant messaging participant and notrealize that this particular instant messaging participant has not beenadded to the Phoenix instant messaging group. When the user subsequentlysends a message to the Phoenix instant messaging group, he mayerroneously assume that the particular participant received the instantmessaging when, in fact, the participant did not receive the messagebecause the participant was never added to the Phoenix group.

SUMMARY

It has been discovered that the aforementioned challenges are resolvedusing a system, method and computer program product that selects aninstant messaging message that includes one or more words in a textarea. The instant message is a communication with an instant messagingparticipant that corresponds to an instant messaging participantidentifier. A count is kept of the words that match keywords that areassociated with a selected instant messaging group data store that isstored in a nonvolatile data area. If the count exceeds a particularthreshold, the instant messaging participant identifier is added to theselected instant messaging group.

In one embodiment, the threshold is set to one (1). In anotherembodiment, prior to adding the participant identifier to the selectedinstant messaging group, the count is compared to threshold. If thecount exceeds the threshold, a user is prompted as to whether to add theinstant messaging participant to the selected instant messaging group.In this embodiment, the participant is only added if the user indicatesthat the participant should be added to the instant messaging group.

In another embodiment, the selected instant messaging message is one ofa set of instant messaging messages being communicated during an instantmessaging session that is currently being conducted between the instantmessaging participant and the user of the computer system. In thisembodiment, the steps are performed until the participant is added toone of the user's instant messaging groups.

In one embodiment, the instant messaging message is one of a set ofinstant messaging messages previously communicated during one or morepast instant messaging sessions. In this embodiment, prior to selectingthe instant messaging message, a set of instant messaging messages areretrieved from an instant messaging archive data store. A set of instantmessaging groups are retrieved with each of the groups including a setof instant messaging participant identifiers, and the instant messaginggroups each have associated keywords. If the instant messagingparticipant's identifier is not included in the selected instantmessaging group data store, then the selecting, the identifying, and theadding are performed.

In a first further embodiment, the count corresponding to each of thekeywords that matches the one or more words is maintained. When one ofthe counts exceeds a threshold, the user is prompted as to whether toadd the instant messaging participant to the selected instant messaginggroup. In this further embodiment, the instant messaging participant isonly added when the user requests that the participant be added to theinstant messaging group.

In a second further embodiment, prior to retrieving the messages and thegroups, the system gathers keywords associated with the group. Thegathering including identifying a select instant messaging groupcorresponding to one of the plurality of instant messaging group datastores with which each of the retrieved messages was communicated,retrieving a keywords data store corresponding to the select instantmessaging group, identifying non-trivial words that are unique andincluded in the retrieved plurality of instant messaging messages, andstoring the identified unique, non-trivial words in the retrievedkeywords data store.

The foregoing is a summary and thus contains, by necessity,simplifications, generalizations, and omissions of detail; consequently,those skilled in the art will appreciate that the summary isillustrative only and is not intended to be in any way limiting. Otheraspects, inventive features, and advantages of the present invention, asdefined solely by the claims, will become apparent in the non-limitingdetailed description set forth below.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention may be better understood, and its numerousobjects, features, and advantages made apparent to those skilled in theart by referencing the accompanying drawings, wherein:

FIG. 1 is a block diagram of a data processing system in which themethods described herein can be implemented;

FIG. 2 provides an extension of the information handling systemenvironment shown in FIG. 1 to illustrate that the methods describedherein can be performed on a wide variety of information handlingsystems which operate in a networked environment;

FIG. 3 is a system diagram showing components used to add members to aninstant messaging group;

FIG. 4 is a flowchart showing steps taken to gather instant messaginggroup keywords;

FIG. 5 is a flowchart showing steps taken to add members to instantmessaging groups; and

FIG. 6 is a flowchart showing steps taken to review instant messagingmessage archives and add members to instant messaging groups afteranalyzing the archives.

DETAILED DESCRIPTION

Certain specific details are set forth in the following description andfigures to provide a thorough understanding of various embodiments ofthe invention. Certain well-known details often associated withcomputing and software technology are not set forth in the followingdisclosure, however, to avoid unnecessarily obscuring the variousembodiments of the invention. Further, those of ordinary skill in therelevant art will understand that they can practice other embodiments ofthe invention without one or more of the details described below.Finally, while various methods are described with reference to steps andsequences in the following disclosure, the description as such is forproviding a clear implementation of embodiments of the invention, andthe steps and sequences of steps should not be taken as required topractice this invention. Instead, the following is intended to provide adetailed description of an example of the invention and should not betaken to be limiting of the invention itself. Rather, any number ofvariations may fall within the scope of the invention, which is definedby the claims that follow the description.

The following detailed description will generally follow the summary ofthe invention, as set forth above, further explaining and expanding thedefinitions of the various aspects and embodiments of the invention asnecessary. To this end, this detailed description first sets forth acomputing environment in FIG. 1 that is suitable to implement thesoftware and/or hardware techniques associated with the invention. Anetworked environment is illustrated in FIG. 2 as an extension of thebasic computing environment, to emphasize that modern computingtechniques can be performed across multiple discrete devices.

FIG. 1 illustrates information handling system 100 which is a simplifiedexample of a computer system capable of performing the computingoperations described herein. Information handling system 100 includesone or more processors 110 which is coupled to processor interface bus112. Processor interface bus 112 connects processors 110 to Northbridge115, which is also known as the Memory Controller Hub (MCH). Northbridge115 is connected to system memory 120 and provides a means forprocessor(s) 110 to access the system memory. Graphics controller 125 isalso connected to Northbridge 115. In one embodiment, PCI Express bus118 is used to connect Northbridge 115 to graphics controller 125.Graphics controller 125 is connected to display device 130, such as acomputer monitor.

Northbridge 115 and Southbridge 135 are connected to each other usingbus 119. In one embodiment, the bus is a Direct Media Interface (DMI)bus that transfers data at high speeds in each direction betweenNorthbridge 115 and Southbridge 135. In another embodiment, a PeripheralComponent Interconnect (PCI) bus is used to connect the Northbridge andthe Southbridge. Southbridge 135, also known as the I/O Controller Hub(ICH) is a chip that generally implements capabilities that operate atslower speeds than the capabilities provided by the Northbridge.Southbridge 135 typically provides various busses used to connectvarious components. These busses can include PCI and PCI Express busses,an ISA bus, a System Management Bus (SMBus or SMB), a Low Pin Count(LPC) bus. The LPC bus is often used to connect low-bandwidth devices,such as boot ROM 196 and “legacy” I/O devices (using a “super I/O”chip). The “legacy” I/O devices (198) can include serial and parallelports, keyboard, mouse, floppy disk controller. The LPC bus is also usedto connect Southbridge 135 to Trusted Platform Module (TPM) 195. Othercomponents often included in Southbridge 135 include a Direct MemoryAccess (DMA) controller, a Programmable Interrupt Controller (PIC), astorage device controller, which connects Southbridge 135 to nonvolatilestorage device 185, such as a hard disk drive, using bus 184.

ExpressCard 155 is a slot used to connect hot-pluggable devices to theinformation handling system. ExpressCard 155 supports both PCI Expressand USB connectivity as it is connected to Southbridge 135 using boththe Universal Serial Bus (USB) the PCI Express bus. Southbridge 135includes USB Controller 140 that provides USB connectivity to devicesthat connect to the USB. These devices include webcam (camera) 150,infrared (IR) receiver 148, Bluetooth device 146 which provides forwireless personal area networks (PANs), keyboard and trackpad 144, andother miscellaneous USB connected devices 142, such as a mouse, portablestorage devices, modems, network cards, ISDN connectors, fax, printers,USB hubs, and many other types of USB connected devices.

Wireless Local Area Network (LAN) device 175 is connected to Southbridge135 via the PCI or PCI Express bus 172. LAN device 175 typicallyimplements one of the IEEE 802.11 standards of over-the-air modulationtechniques that all use the same protocol to wireless communicatebetween information handling system 100 and another computer system ordevice. Optical storage device 190 is connected to Southbridge 135 usingSerial ATA (SATA) bus 188. Serial ATA adapters and devices communicateover a high-speed serial link. The Serial ATA bus is also used toconnect Southbridge 135 to other forms of storage devices, such as harddisk drives. Audio circuitry 160, such as a sound card, is connected toSouthbridge 135 via bus 158. Audio circuitry 160 is used to providefunctionality such as audio line-in and optical digital audio in port162, optical digital output and headphone jack 164, internal speakers166, and internal microphone 168. Ethernet controller 170 is connectedto Southbridge 135 using a bus, such as the PCI or PCI Express bus.Ethernet controller 170 is used to connect information handling system100 with a computer network, such as a Local Area Network (LAN), theInternet, and other public and private computer networks.

While FIG. 1 shows one information handling system, an informationhandling system may take many forms. For example, an informationhandling system may take the form of a desktop, server, portable,laptop, notebook, or other form factor computer or data processingsystem. In addition, an information handling system may take other formfactors such as a personal digital assistant (PDA), a gaming device, ATMmachine, a portable telephone device, a communication device or otherdevices that include a processor and memory.

The Trusted Platform Module (TPM 195) shown in FIG. 1 and describedherein to provide security functions is but one example of a hardwaresecurity module (HSM). Therefore, the TPM described and claimed hereinincludes any type of HSM including, but not limited to, hardwaresecurity devices that conform to the Trusted Computing Groups (TCG)standard, and entitled “Trusted Platform Module (TPM) SpecificationVersion 1.2.” The TPM is a hardware security subsystem that may beincorporated into any number of information handling systems, such asthose outlined in FIG. 2.

FIG. 2 provides an extension of the information handling systemenvironment shown in FIG. 1 to illustrate that the methods describedherein can be performed on a wide variety of information handlingsystems which operate in a networked environment. Types of informationhandling systems range from small handheld devices, such as handheldcomputer/mobile telephone 210 to large mainframe systems, such asmainframe computer 270. Examples of handheld computer 210 includepersonal digital assistants (PDAs), personal entertainment devices, suchas MP3 players, portable televisions, and compact disc players. Otherexamples of information handling systems include pen, or tablet,computer 220, laptop, or notebook, computer 230, workstation 240,personal computer system 250, and server 260. Other types of informationhandling systems that are not individually shown in FIG. 2 arerepresented by information handling system 280. As shown, the variousinformation handling systems can be networked together using computernetwork 200. Types of computer network that can be used to interconnectthe various information handling systems include Local Area Networks(LANs), Wireless Local Area Networks (WLANs), the Internet, the PublicSwitched Telephone Network (PSTN), other wireless networks, and anyother network topology that can be used to interconnect the informationhandling systems. Many of the information handling system includenonvolatile data stores, such as hard drives and/or nonvolatile memory.Some of the information handling systems shown in FIG. 2 are depictedwith separate nonvolatile data stores (server 260 is shown withnonvolatile data store 265, mainframe computer 270 is shown withnonvolatile data store 275, and information handling system 280 is shownwith nonvolatile data store 285). The nonvolatile data store can be acomponent that is external to the various information handling systemsor can be internal to one of the information handling systems. Inaddition, while not shown, an individual nonvolatile data store can beshared amongst two or more information handling systems using varioustechniques.

FIG. 3 is a system diagram showing components used to add members to aninstant messaging group. Computer network 200 is used to interconnectinstant messaging participants 320 with instant messaging participant330 via instant messaging server 310. Instant messaging messages aresent and received by each of the participants. When an instant messagingparticipant sends a message, it travels through computer network 200where it is received by instant messaging server 310. Instant messagingserver 310 determines the target participant (or participants) andforwards the instant messaging message to the target participant(s).

Instant messaging participant 330 (the user) is detailed to depictcomponents used to add one or more of participants 320 to the user'sinstant messaging groups. These components include instant messagingsession manager 340, and instant messaging message text analyzer 380. Asthe name implies, instant messaging session manager 340 manages activeinstant messaging sessions that the user conducts with one or moreinstant messaging participants 320. Instant messaging message textanalyzer 380 is used to analyze text in instant messaging messages forkeywords to ascertain whether it is advisable to include one or moreinstant messaging participants 320 in one or more instant messaginggroups 350. In addition, instant messaging message text analyzer 380 isused to gather keywords from the user's instant messaging messages sentduring various instant messaging sessions.

When the user is engaged in an active instant messaging session, instantmessaging session manager 340 stores the instant messaging messages thatare communicated between the user and instant messaging participants 320in a buffer, such as instant messaging active data store 360. If theuser is conducting an instant messaging session with a group of instantmessaging participants, then the group data (e.g., instant messagingparticipant identifiers, names, etc.) are retrieved from instantmessaging group data store 350. When an instant messaging session iscompleted, the instant messaging messages that were communicated duringthe session are added to instant messaging archive data store 370. Inaddition to the text of the instant messaging messages that were sentand received during the past instant messaging sessions, instantmessaging archive data store 370 also includes information such as theinstant messaging participant identifier(s) with whom the prior sessionwas conducted and a timestamp either for the instant messaging sessionor for individual instant messaging messages that indicate the time ofthe session and/or the instant messaging messages.

Instant messaging message text analyzer 380 analyzes the text includedin instant messaging messages of both active instant messaging sessionsand archived instant messaging sessions and compares this text tokeywords located in instant messaging groups keywords data store 390.The keywords data store includes keywords and groups associated withsuch keywords. If the user is a member of a group working on a projecttitled “Phoenix” that has to do with a company's new order entrysoftware platform, words such as “Phoenix,” “order entry,” “milestones,”“deliverables,” and the like might be associated with the instantmessaging group named “Phoenix.” In addition, if the user has an instantmessaging group titled “Softball” that is used to communicate withmember's of the company's softball team, keywords such as “softball,”“game,” “inning,” and other softball-related words could be associatedwith the softball instant messaging group. Instant messaging messagetext analyzer 380 both analyzes the text to ascertain the keywordsshould be associated with the particular instant messaging groups, butalso suggests to the user which participants should be included in aparticular instant messaging group based on the instant messagingmessages communicated with the particular participant. For example, if anew person recently joined the softball team and the user is conductingan instant messaging session with the new person (one of instantmessaging participants 320) discussing an upcoming softball game,instant messaging message text analyzer 380 would recognize that thetext of the instant messaging session matches keywords associated withthe instant messaging group “softball” and ask the user if theparticipant should be added to the softball instant messaging group, andthe participant is either added or not added depending on the user'sanswer.

FIG. 4 is a flowchart showing steps taken to gather instant messaginggroup keywords. Processing commences at 400 whereupon, at step 410 thefirst instant messaging group is selected from instant messaging groupsdata store 350. At step 415, instant messaging message text 420 that isincluded in active instant messaging sessions (e.g., currently on-going)data store 360 as wall as archived instant messaging sessions data store370 are analyzed, resulting in data store 425 that includes the instantmessaging message text for messages communicated with the selectedgroup.

At step 430, trivial word list 435 is used to remove trivial words fromselected group text data store 425, resulting in the selected group'snon-trivial word list 440. At step 445, the selected group's non-trivialword list 440 is compared to the group's current unique non-trivial wordlist 450. The non-trivial words that are new to the selected group areadded to the group's unique non-trivial word list 450.

A determination is made as to whether the user is prompted to selectkeywords to add to a group's non-trivial word list (decision 455). Ifthe user is not prompted to select keywords, then decision 455 branchesto “no” branch 472 whereupon, at step 475, the non-trivial words thatare new to the selected group are added to the instant messaging groupkeyword data store 390.

On the other hand, if the user is prompted before adding new words tothe instant messaging group keyword data store, then decision 455branches to “yes” branch 458 whereupon, at step 460, the user ispresented with dialog 465 (e.g., a graphical user interface, etc.)allowing the user to confirm the addition of the newly found uniquenon-trivial words stored in data store 450 as well as add or modify thewords included in data store 450. At step 470, the system adds,modifies, and removes words from data store 450 as directed by the user.At step 475, the words remaining in data store 450 are added to instantmessaging group keywords data store 390.

A determination is made as to whether there are more instant messaginggroups to process (decision 480). If there are more instant messaginggroups to process, decision 480 branches to “yes” branch 485 which loopsback to select and process the next instant messaging group from instantmessaging groups data store 350. This looping continues until there areno more instant messaging groups to process, at which point decision 480branches to “no” branch 490 and the processing used to gather groupkeywords ends at 495.

FIG. 5 is a flowchart showing steps taken to add members to instantmessaging groups. Processing commences at 500 whereupon a determinationis made as to whether an instant messaging session is currently inprogress (decision 505). If an instant messaging session is notcurrently in progress, then decision 505 branches to “no” branch 508whereupon, at predefined process 510, is performed to process instantmessaging message archives and processing ends at 520. On the otherhand, if an instant messaging session is currently in progress, thendecision 505 branches to “yes” branch 512 whereupon anotherdetermination is made as to whether the current instant messagingsession is a session with an instant messaging group (decision 515). Ifthe instant messaging session that is currently taking place is alreadywith a group, then decision 515 branches to “yes” branch 518 andprocessing ends at 520.

On the other hand, if the session is not with a group (i.e., the sessionis with an individual instant messaging participant and not a group),then decision 515 branches to “no” branch 522 and most of the remainingsteps of FIG. 5 (with the exception of step 560) preferably taking placein the background. At step 525, instant messaging message text that iscurrently being sent and received with the other instant messagingparticipant is received from active instant messaging data store 360(e.g., a buffer). At step 530 the first instant messaging group isselected from instant messaging group data store 350. At step 535, wordsin the message text that match keywords retrieved from the instantmessaging group keywords data store 390 are identified. In other words,instant messaging keywords data store 390 includes different keywordsbased upon the instant messaging group. The instant messaging group forthe softball team would have softball related keywords associated withthe group, whereas the group for the “Phoenix” project at the user'sbusiness would have keywords related to the software project.

At step 540, keyword counters 545 are incremented. As shown, countersare maintained for each keyword encountered for the selected group. Adetermination is made as to whether a keyword counter for the selectedinstant messaging group has exceeded a threshold (decision 550). In oneembodiment, the threshold is one (1). In another embodiment, thethresholds are variable so that the threshold for one keyword may bedifferent than the threshold of another keyword. For example, since theword “Phoenix” is fairly unique, its threshold may be lower than a moregeneric word such as “milestone” or “deliverable.” If the keywordthreshold count for one of the keywords has been exceeded, then decision550 branches to “yes” branch 555 whereupon, at step 560, the user isprompted and asked whether to add the participant to the selected group.A determination is made, based on the user's answer, as to whether toadd the participant to the selected group (decision 565). If the useranswered affirmatively to add the participant to the selected group,then decision 565 branches to “yes” branch 568 whereupon, at step 570,the participant is added to the selected group and processing thereafterends at 595. On the other hand, if the user does not choose to add theparticipant to the selected group, then decision 565 branches to “no”branch 572.

Returning to decision 550, if no keyword threshold count has beenexceeded, then decision 550 branches to “no” branch 575. A determinationis made as to whether there are more instant messaging groups to analyze(decision 580). If there are more groups to analyze, then decision 580branches to “yes” branch 582 to loop back to select the next group atstep 530 and process the next selected group accordingly. This loopingcontinues until the participant is either added to a group or there areno more groups to process. When there are no more groups to process,decision 580 branches to “no” branch 584 whereupon a determination ismade as to whether the user's instant messaging session is over or isstill taking place (decision 585). If the session is not yet over, thendecision 585 branches to “no” branch 588 which loops back to retrieveone or more additional messages communicated between the user and theinstant messaging participant and processing loops through the instantmessaging groups as described above to attempt to identify an instantmessaging group in which this participant may belong. This loopingcontinues until the instant messaging session is over, at which pointdecision 585 branches to “yes” branch 590 and processing ends at 595.

FIG. 6 is a flowchart showing steps taken to review instant messagingmessage archives and add members to instant messaging groups afteranalyzing the archives. This flowchart is called from predefined process510 shown in FIG. 5. FIG. 6 processing commences at 600 whereupon, atstep 610, the first archived message that was not directed to an instantmessaging group is selected from instant messaging message archive datastore 370. At step 620, the first instant messaging group is selectedfrom instant messaging groups data store 350.

A determination is made as to whether the participant of the selectedarchived instant messaging message is already a member of the selectedinstant messaging group (decision 625). If the participant is already amember, then decision 625 branches to “yes” branch 626 bypassing steps635 to 670. On the other hand, if the participant is not a member of theselected group, then decision 625 branches to “no” branch 628 whereupon,at step 635, words in the message (one or more instant messagingmessages) communicated between the user and the participant are comparedto keywords for the selected group that are retrieved from instantmessaging group keywords data store 390 to identify matches. At step640, keyword counts 645 for identified matches are incremented. Aspreviously described in relation to FIG. 5, in one embodiment, thethreshold is one (1), and in another embodiment, the thresholds arevariable so that the threshold for one keyword may be different than thethreshold of another keyword.

A determination is made as to whether the keyword threshold count hasbeen exceeded (decision 650). If the threshold has been exceeded, thendecision 650 branches to “yes” branch 655 whereupon, at step 660, theuser is prompted as to whether the user wants to add the selectedparticipant to the selected instant messaging group. A determination ismade, based on the user's answer, as to whether to add the selectedparticipant to the selected group (decision 665). If the user requestedto have the participant added to the group, then decision 665 branchesto “yes” branch 668 whereupon, at step 670, the selected participant isadded to the selected group. On the other hand, if the user did notrequest to have the participant added to the selected group, thendecision 665 branches to “no” branch 672 bypassing step 670. Returningto decision 650, if the keyword threshold does not exceed the threshold,then decision 650 branches to “no” branch 675 bypassing steps 660through 670.

A determination is made as to whether there are more instant messaginggroups to process for the selected instant messaging message (decision680). If there are more groups to process, then decision 680 branches to“yes” branch 682 whereupon, at step 683, the keyword counts are cleared(e.g., reset) and processing loops back to select the next instantmessaging group at step 620. This looping continues until there are nomore instant messaging groups to process, at which point decision 680branches to “no” branch 684 whereupon another determination is made asto whether there are more instant messaging messages to process(decision 685). If there are additional instant messaging messages toprocess, then decision 685 branches to “yes” branch 688 whereupon, atstep 689, the keyword counts are cleared and processing loops back toselect the next instant messaging message at step 610 and process itaccordingly. This looping continues until there are no more instantmessaging messages to process, at which point decision 685 branches to“no” branch 692 and processing ends at 695.

One of the preferred implementations of the invention is a clientapplication, namely, a set of instructions (program code) or otherfunctional descriptive material in a code module that may, for example,be resident in the random access memory of the computer. Until requiredby the computer, the set of instructions may be stored in anothercomputer memory, for example, in a hard disk drive, or in a removablememory such as an optical disk (for eventual use in a CD ROM) or floppydisk (for eventual use in a floppy disk drive), or downloaded via theInternet or other computer network. Thus, the present invention may beimplemented as a computer program product for use in a computer. Inaddition, although the various methods described are convenientlyimplemented in a general purpose computer selectively activated orreconfigured by software, one of ordinary skill in the art would alsorecognize that such methods may be carried out in hardware, in firmware,or in more specialized apparatus constructed to perform the requiredmethod steps. Functional descriptive material is information thatimparts functionality to a machine. Functional descriptive materialincludes, but is not limited to, computer programs, instructions, rules,facts, definitions of computable functions, objects, and datastructures.

While particular embodiments of the present invention have been shownand described, it will be obvious to those skilled in the art that,based upon the teachings herein, that changes and modifications may bemade without departing from this invention and its broader aspects.Therefore, the appended claims are to encompass within their scope allsuch changes and modifications as are within the true spirit and scopeof this invention. Furthermore, it is to be understood that theinvention is solely defined by the appended claims. It will beunderstood by those with skill in the art that if a specific number ofan introduced claim element is intended, such intent will be explicitlyrecited in the claim, and in the absence of such recitation no suchlimitation is present. For non-limiting example, as an aid tounderstanding, the following appended claims contain usage of theintroductory phrases “at least one” and “one or more” to introduce claimelements. However, the use of such phrases should not be construed toimply that the introduction of a claim element by the indefinitearticles “a” or “an” limits any particular claim containing suchintroduced claim element to inventions containing only one such element,even when the same claim includes the introductory phrases “one or more”or “at least one” and indefinite articles such as “a” or “an”; the sameholds true for the use in the claims of definite articles.

What is claimed is:
 1. A computer-implemented method comprising:selecting an instant messaging message that includes one or more wordsin a text area, wherein the selected instant messaging message is acommunication with a first instant messaging participant, wherein thefirst instant messaging participant is associated with a first instantmessaging participant identifier; selecting an instant messaging group,wherein the selected instant messaging group comprises a plurality ofgroup members, each group member associated with one of a plurality ofinstant messaging participant identifiers, and wherein the instantmessaging group is associated with one or more keywords, and wherein theinstant messaging participant identifiers and the keywords are stored inan instant messaging group data store in a nonvolatile data area;determining whether the first instant messaging participant is a memberof the selected instant messaging group; in response to determining thatthe first instant messaging participant is not a member of the selectedinstant messaging group, performing the following: identifying a countof the one or more words included in the selected instant messagingmessage that match the one or more keywords that are associated with theselected instant messaging group in response to the identifying,determining that the count exceeds a predetermined threshold; and inresponse to the determining, adding the first instant messagingparticipant to the selected instant messaging group, wherein the addingcomprises adding the first instant messaging participant identifier to alist of instant messaging participant identifiers associated with theselected instant messaging group, the list stored in the instantmessaging group data store.
 2. The method of claim 1 wherein thepredetermined threshold is one.
 3. The method of claim 1 furthercomprising: prior to the adding: prompting a user whether to add thefirst instant messaging participant to the selected instant messaginggroup; and receiving an answer from the user in response to theprompting, wherein the adding is only performed in response to the useranswering that the first instant messaging participant should be addedto the selected instant messaging group.
 4. The method of claim 1wherein the selected instant messaging message is one of a plurality ofinstant messaging messages being communicated during an instantmessaging session that is currently being conducted between the firstinstant messaging participant and a second instant messagingparticipant, wherein the second instant messaging participant is a userof a computer system where the computer-implemented method is beingperformed, and the method further comprises: performing the identifyingstep and the adding step for each of the plurality of instant messagingmessages until the first instant messaging participant is added to theselected instant messaging group.
 5. The method of claim 1 wherein theinstant messaging message is selected from a plurality of archivedinstant messaging messages, wherein the archived instant messagingmessages were previously communicated during a past instant messaging.6. The method of claim 5 further comprising: maintaining the countcorresponding to each of the keywords that matches the one or morewords; prompting a user whether to add the first instant messagingparticipant to the selected instant messaging group in response to oneof the counts corresponding to at least one of the keywords exceedingthe predetermined threshold; and receiving an answer from the user inresponse to the prompting, wherein the adding is only performed inresponse to the user answering that the first instant messagingparticipant should be added to the selected instant messaging group. 7.The method of claim 5 further comprising gathering the keywordsassociated with the selected instant messaging group, the gatheringcomprising: retrieving the plurality of archived instant messagingmessages; retrieving a keywords data store corresponding to the selectinstant messaging group; identifying non-trivial words that are uniqueand included in the retrieved plurality of archived instant messagingmessages; and storing the identified unique, non-trivial words in theretrieved keywords data store.
 8. An information handling systemcomprising: one or more processors; a memory accessible by at least oneof the processors; a nonvolatile storage area accessible by at least oneof the processors; a set of instructions stored in the memory andexecuted by at least one of the processors in order to perform actionsof: selecting an instant messaging message that includes one or morewords in a text area, wherein the selected instant messaging message isa communication with a first instant messaging participant, wherein thefirst instant messaging participant is associated with a first instantmessaging participant identifier; selecting an instant messaging group,wherein the selected instant messaging group comprises a plurality ofgroup members, each group member associated with one of a plurality ofinstant messaging participant identifiers, and wherein the instantmessaging group is associated with one or more keywords, and wherein theinstant messaging participant identifiers and the keywords are stored inan instant messaging group data store in a nonvolatile data area;determining whether the first instant messaging participant is a memberof the selected instant messaging group; in response to determining thatthe first instant messaging participant is not a member of the selectedinstant messaging group, performing the following: identifying a countof the one or more words included in the selected instant messagingmessage that match the one or more keywords that are associated with theselected instant messaging group; in response to the identifying,determining that the count exceeds a predetermined threshold; and inresponse to the determining, adding the first instant messagingparticipant to the selected instant messaging group, wherein the addingcomprises adding the first instant messaging participant identifier to alist of instant messaging participant identifiers associated with theselected instant messaging group, the list stored in the instantmessaging group data store.
 9. The information handling system of claim8 wherein the predetermined threshold is one.
 10. The informationhandling system of claim 8 further comprising: prior to the adding:prompting a user whether to add the first instant messaging participantto the selected instant messaging group; and receiving an answer fromthe user in response to the prompting, wherein the adding is onlyperformed in response to the user answering that the first instantmessaging participant should be added to the selected instant messaginggroup.
 11. The information handling system of claim 8 wherein theselected instant messaging message is one of a plurality of instantmessaging messages being communicated during an instant messagingsession that is currently being conducted between the first instantmessaging participant and a second instant messaging participant,wherein the second instant messaging participant is a user of theinformation handling system, and wherein the set of instructions, whenexecuted, cause at least one of the processors to perform furtheractions comprising: performing the identifying step and the adding stepfor each of the plurality of instant messaging messages until the firstinstant messaging participant is added to the selected instant messaginggroup.
 12. The information handling system of claim 8 wherein theinstant messaging message is selected from a plurality of archivedinstant messaging messages, wherein the archived instant messagingmessages were previously communicated during a past instant messagingsession.
 13. The information handling system of claim 12 wherein the setof instructions, when executed, cause at least one of the processors toperform further actions comprising: maintaining the count correspondingto each of the keywords that matches the one or more words; prompting auser whether to add the first instant messaging participant to theselected instant messaging group in response to one of the countscorresponding to at least one of the keywords exceeding thepredetermined threshold; receiving an answer from the user in responseto the prompting, wherein the adding is only performed in response tothe user answering that the first instant messaging participant shouldbe added to the selected instant messaging group; and gathering thekeywords associated with the selected instant messaging group, whereinthe gathering comprises: retrieving the plurality of archived instantmessaging messages; retrieving a keywords data store corresponding tothe select instant messaging group; identifying non-trivial words thatare unique and included in the retrieved plurality of archived instantmessaging messages; and storing the identified unique, non-trivial wordsin the retrieved keywords data store.
 14. A computer program productstored in a computer readable medium, comprising functional descriptivematerial that, when executed by an information handling system, causesthe information handling system to perform actions that include:selecting an instant messaging message that includes one or more wordsin a text area, wherein the selected instant messaging message is acommunication with a first instant messaging participant, wherein thefirst instant messaging participant is associated with a first instantmessaging participant identifier; selecting an instant messaging group,wherein the selected instant messaging group comprises a plurality ofgroup members, each group member associated with one of a plurality ofinstant messaging participant identifiers, and wherein the instantmessaging group is associated with one or more keywords, and wherein theinstant messaging participant identifiers and the keywords are stored inan instant messaging group data store in a nonvolatile data area;determining whether the first instant messaging participant is a memberof the selected instant messaging group; in response to determining thatthe first instant messaging participant is not a member of the selectedinstant messaging group, performing the following: identifying a countof the one or more words included in the selected instant messagingmessage that match the one or more keywords that are associated with theselected instant messaging group; in response to the identifying,determining that the count exceeds a predetermined threshold; and inresponse to the determining, adding the first instant messagingparticipant to the selected instant messaging group, wherein the addingcomprises adding the first instant messaging participant identifier to alist of instant messaging participant identifiers associated with theselected instant messaging group, the list stored in the instantmessaging group data store.
 15. The computer program product of claim 14wherein the predetermined threshold is one.
 16. The computer programproduct of claim 14 further comprising functional descriptive materialthat causes the data processing system to perform additional actionsthat include: prior to the adding: prompting a user whether to add thefirst instant messaging participant to the selected instant messaginggroup; and receiving an answer from the user in response to theprompting, wherein the adding is only performed in response to the useranswering that the first instant messaging participant should be addedto the selected instant messaging group.
 17. The computer programproduct of claim 14 wherein the selected instant messaging message isone of a plurality of instant messaging messages being communicatedduring an instant messaging session that is currently being conductedbetween the first instant messaging participant and a second instantmessaging participant, wherein the second instant messaging participantis a user of the information handling system, and the computer programproduct further comprises functional descriptive material that causesthe data processing system to perform additional actions that include:performing the identifying step and the adding step for each of theplurality of instant messaging messages until the first instantmessaging participant identifier is added to the selected instantmessaging group.
 18. The computer program product of claim 14 whereinthe instant messaging message is selected from a plurality of archivedinstant messaging messages previously communicated during a past instantmessaging.
 19. The computer program product of claim 18 furthercomprising functional descriptive material that causes the dataprocessing system to perform additional actions that include:maintaining the count corresponding to each of the keywords that matchesthe one or more words; prompting a user whether to add the first instantmessaging participant to the selected instant messaging group inresponse to one of the counts corresponding to at least one of thekeywords exceeding the predetermined threshold; and receiving an answerfrom the user in response to the prompting, wherein the adding is onlyperformed in response to the user answering that the first instantmessaging participant should be added to the selected instant messaginggroup.
 20. The computer program product of claim 18 further comprisingfunctional descriptive material that causes the data processing systemto perform additional actions that include gathering the keywords, thegathering comprising: retrieving a keywords data store corresponding tothe select instant messaging group; identifying non-trivial words thatare unique and included in the retrieved plurality of archived instantmessaging messages; and storing the identified unique, non-trivial wordsin the retrieved keywords data store.